본문으로 건너뛰기

23.07.05

오늘 한 일

  • TIL GUIDELINE 작성
  • Rust 공부 1,2장 및 3장 절반

TIL GUIDELINE

TIL 가이드라인을 작성했다.

빌드할 때 mdx로 변환되면서 에러가 생기는 경우의 수가 있어서, 가이드라인을 만들어보았다.

🤔 어떻게 하면 빌드 오류를 사전에 방지할 수 있을까?

두 가지 방법을 생각했다.

  1. eslint를 사용해서 빌드 전에 오류를 잡는다.

  2. Dogsounds-TILTIL를 합쳐서 TIL 레포지토리에서 pnpm build를 직접해본다.

첫 번째 방법을 위해 eslint-plugin-mdx을 적용해보았지만, 내가 원하는 대로 동작하지 않았다. 닫는 태그가 없는 경우들을 잡아주지 않았다.

두 번째 방법은 직접 빌드해서 확인하는 것이기 때문에 확실한 방법이지만, 멤버들이 살짝 복잡하게 느껴질 수도 있다.

그래서 일단 킵해두고, 다른 방법이 있을지 더 고민해봐야겠다.

Rust 공부

오늘 처음 Rust 언어를 공부해보았다. 생소하지만 재밌었다. 원래는 3장까지 하기로 했지만, 생각보다 공식문서가 쉽게 적혀있어서 금방 끝났다. 그래서 1주차 분량을 4장 소유권 까지 하기로 정했다.

  • 러스트에서 변수는 기본적으로 불변 (immutable)
  • 변경 가능하도록 하려면 변수명 앞에 mut를 추가
  • ::는 new가 String 타입의 연관 함수 (associated function) 임을 나타냄
  • &는 코드의 여러 부분에서 데이터를 여러 번 메모리로 복사하지 않고 접근하기 위한 방법을 제공하는 참조자 (reference)
  • 크레이트는 러스트 코드 파일들의 모음
  • i32는 32비트 정수, u32는 32비트의 부호 없는 정수, i64는 64비트의 정수
  • 기본적으로 숫자들을 i32로 생각
  • trim 메서드는 \n 혹은 \r\n을 제거
// guessing_game/src/main.rs

use rand::Rng;
use std::cmp::Ordering;
use std::io;

fn main() {
println!("Guess the number!");

let secret_number = rand::thread_rng().gen_range(1..=100);

loop {
println!("Please input your guess.");

let mut guess = String::new();

io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");

println!("You guessed: {}", guess);

let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};

match guess.cmp(&secret_number) {
Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"),
Ordering::Equal => {
println!("You win!");
break;
}
}
}
}

내일 할 일

  • 알고리즘 문제 풀이
  • Rust 공식문서 3장 나머지 공부
  • 모노레포 찍먹
  • CS 스터디 오후 9시 30분